package clienteSide.cliente;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.Set;

import repositorio.bean.*;
import repositorio.interfaz.TDAManejoDatos;

public class Cliente {
    
	TDAManejoDatos manejoAlumnos;
	Alumno alumno;
	String direccionServer = "//192.168.1.142/GestionAlumnos";
	
	public static void main(String[] args)
	{
		new Cliente();
	}
	
    public boolean getStub() {
    	
    	try {
			manejoAlumnos = (TDAManejoDatos)Naming.lookup (direccionServer); //"GestionAlumnos" es el nombre que esta configurado en el server
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
    }
    
    public Cliente(){
    	if(getStub()) 
    	{
    		try {
    			alumno = manejoAlumnos.obtengoAlumno(1);
    			System.out.println(alumno.toString());
    			System.out.println("\nListo Todos los Alumnos");
    			Set<Alumno> alumnos = manejoAlumnos.obtengoAlumnos();
    			listaTodosAlumnos(alumnos);
    			System.out.println("\nAgrego un alumno");
    			alumno = new Alumno(11, "Charly");
    			manejoAlumnos.envioAlumno(alumno); //Agrega alumno a coleccion almacenada en el server
    			System.out.println("\nListo Todos los Alumnos");
    			listaTodosAlumnos(alumnos=manejoAlumnos.obtengoAlumnos());
    			System.out.println("\nCantidad de Alumnos:" + manejoAlumnos.cantidadAlumnos());
    			System.out.println("Suma Valores: " +manejoAlumnos.sumaValores(2, 100));
    			manejoAlumnos.finTransaccion();
    			
    		} catch (RemoteException e) { //Esta excepcion me indica que algunos de los metodos aqui invocados se encuentran del lado remoto
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	} 
    }

    public void listaTodosAlumnos(Set<Alumno> alumnos){
    	for (Iterator<Alumno> i = alumnos.iterator();i.hasNext();){
    		System.out.println(i.next().toString());
    	}
    }
    
 }
